NE-2520: Enable Gateway API tests on vSphere and baremetal#30946
NE-2520: Enable Gateway API tests on vSphere and baremetal#30946openshift-merge-bot[bot] merged 3 commits intoopenshift:mainfrom
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: automatic mode |
WalkthroughAdds runtime cluster-capability detection and conditional test behavior to Gateway API controller tests: detects load-balancer and managed-DNS support, skips IPv6/dual-stack clusters, adapts gateway creation/readiness checks and assertions, and replaces platform skip logic with capability discovery (loadBalancerSupported, managedDNS). Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Skipping CI for Draft Pull Request. |
|
@gcs278: The label(s) DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
217a875 to
d09911f
Compare
d09911f to
667ab93
Compare
667ab93 to
0a85364
Compare
|
@gcs278: This pull request references NE-2520 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Scheduling required tests: |
|
Opfh i forgot we need to test vsphere tech preview too: |
|
Is this how to kick it off? |
|
@gcs278: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/336b0030-2d75-11f1-968e-6fa8157092ad-0 |
| switch platformType { | ||
| case configv1.AWSPlatformType, configv1.AzurePlatformType, configv1.GCPPlatformType, configv1.IBMCloudPlatformType: | ||
| loadBalancerSupported = true | ||
| case configv1.VSpherePlatformType: |
There was a problem hiding this comment.
nit: I would probably join both vsphere and default case here, or even just start with loadBalancerSupported = false and change it in case platform is GCP, AWS, Azure or IBMCloud
|
|
||
| // isDNSManaged checks if the cluster has DNS zones configured (public or private). | ||
| // On platforms like vSphere without external DNS, DNS records cannot be managed. | ||
| func isDNSManaged(oc *exutil.CLI) bool { |
There was a problem hiding this comment.
recovering from a previous review you did on my PR :)
Is the Private or Public not being null enough for it? I think for this case right now it may be, but though was worth asking
There was a problem hiding this comment.
Logically it makes sense: in order for DNS to work we need either a private or public zone listed. And correct, this logic is mirroring what we did in CIO E2E. That's had some exposure and seems to work well.
|
None of my comments are blockers /lgtm |
|
/testwith openshift/installer/main/e2e-aws-ovn-dualstack-ipv6-primary-techpreview #30946 |
|
@gcs278, |
|
maybe i need to have a openshift-installer PR that is a NO-OP? /testwith openshift/installer/main/e2e-aws-ovn-dualstack-ipv6-primary-techpreview openshift/installer#10453 |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: gcs278, rikatz The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/test e2e-metal-ipi-ovn |
|
@gcs278: The DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Here is my evidence that I'm not going to break vsphere and metal jobs:
/verified by ci |
|
@gcs278: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/unhold |
|
@gcs278: This pull request references NE-2520 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Ah I think I have to trigger the pipeline |
|
Scheduling required tests: |
2 similar comments
|
Scheduling required tests: |
|
Scheduling required tests: |
|
@gcs278: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
Job Failure Risk Analysis for sha: 974a80c
|
|
/test e2e-metal-ipi-ovn-bgp-virt-dualstack-techpreview We are going to promote the GatewayAPIWithoutOLM feature gate right? I think we need run |
|
/payload-job e2e-metal-ipi-ovn-ipv6-runc-techpreview e2e-vsphere-ipi-ovn-runc-techpreview e2e-vsphere-static-ovn-techpreview |
|
@lihongan: trigger 3 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/0b673830-2e63-11f1-8873-2caffaeddc18-0 |
|
sorry payload job name were wrong /payload-job periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ipi-ovn-ipv6-runc-techpreview periodic-ci-openshift-release-main-nightly-4.22-e2e-vsphere-ipi-ovn-runc-techpreview periodic-ci-openshift-release-main-nightly-4.22-e2e-vsphere-static-ovn-techpreview |
|
@lihongan: trigger 3 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/32270310-2e68-11f1-81af-3fc0071989a2-0 |
|
OK, the 5 |
Enable Gateway API e2e tests to run on vSphere and baremetal by conditionally skipping tests that require LoadBalancer services or managed DNS. Also fix test retry logic and skip tests on IPv6/dual-stack clusters where OLM catalog sources are typically unavailable.
Motivation
Support for NE-2286 - promoting GatewayAPIController to GA requires 7 days of feature gate test coverage. Running these tests on vSphere/baremetal provides additional platform coverage.
Changes
Platform capability detection
managedDNSandloadBalancerSupportedto track platform capabilitiesisDNSManaged()helper to check for DNS zone configurationassertGatewayLoadbalancerReady()- only ifloadBalancerSupportedassertDNSRecordStatus()- only ifmanagedDNSassertHttpRouteConnection()- only if both features availablecheckGatewayStatus()to wait for appropriate condition:Accepted=Trueon platforms without LoadBalancer (e.g., vSphere)Programmed=Trueon platforms with LoadBalancer (AWS, GCP, etc.)Bug fixes for test reliability
o.Expect(err).NotTo(o.HaveOccurred())to graceful error handling with retryIPv6/dual-stack cluster handling
isIPv6OrDualStack()helper to detect IPv6/dual-stack networking via ServiceNetwork CIDRsBehavior on vSphere/baremetal
What runs:
Accepted=True) ✅What is skipped: